using AdminSG3L.Applicaticn.Dtos;
using AdminSG3L.Applicaticn.Commands;

namespace AdminSG3L.Applicaticn.ServicesInterface;

/// <summary>
/// 系统管理服务接口
/// </summary>
public interface ISystemService
{
    /// <summary>
    /// 获取系统信息
    /// </summary>
    Task<ApiResponse<SystemInfoDto>> GetSystemInfoAsync();
    
    /// <summary>
    /// 获取系统配置
    /// </summary>
    Task<ApiResponse<Dictionary<string, object>>> GetSystemConfigAsync();
    
    /// <summary>
    /// 更新系统配置
    /// </summary>
    Task<ApiResponse<bool>> UpdateSystemConfigAsync(Dictionary<string, object> config);
    
    /// <summary>
    /// 获取系统日志
    /// </summary>
    Task<ApiResponse<PagedResult<SystemLogDto>>> GetSystemLogsAsync(int page = 1, int size = 10);
    
    /// <summary>
    /// 清理系统缓存
    /// </summary>
    Task<ApiResponse<bool>> ClearCacheAsync();
    
    /// <summary>
    /// 获取系统性能指标
    /// </summary>
    Task<ApiResponse<SystemPerformanceDto>> GetPerformanceMetricsAsync();
    
    /// <summary>
    /// 系统健康检查
    /// </summary>
    Task<ApiResponse<HealthCheckDto>> HealthCheckAsync();
}